package org.algorithm.biubiu.wheel_1.数学算法;

import java.util.ArrayList;
import java.util.List;

/**
 给定两个整数 n 和 k，返回范围 [1, n] 中所有可能的 k 个数的组合。

 你可以按 任何顺序 返回答案。
 https://leetcode.cn/problems/combinations/


 {@linkplain org.algorithm.biubiu.wheel_1.回溯算法.$4月20日$组合}
 */
public class $5月15日$组合 {

    List<List<Integer>> res = new ArrayList();
    public List<List<Integer>> combine(int n, int k) {
        if(k>n) return res;
        backTrack(n,k,1);
        return res;
    }



    List<Integer> track = new ArrayList();
    public void backTrack(int n,int k,int index){
        if(track.size()==k){
            res.add(new ArrayList(track));
            return ;
        }
        for(int i=index;i<=n;i++){
            track.add(i);
            backTrack(n,k,i+1);
            track.remove(track.size()-1);
        }

    }

}
